package difficulty.middle;

import java.util.Scanner;

/**
 * HJ82 将真分数分解为埃及分数
 * @author d3y1
 */
public class HJ82{

    private static StringBuilder result = new StringBuilder();

    public static void main(String[] args){
        Scanner in = new Scanner(System.in);

        while(in.hasNext()){
            String[] fraction = in.nextLine().trim().split("/");
            // 分子
            Integer a = Integer.parseInt(fraction[0]);
            // 分母
            Integer b = Integer.parseInt(fraction[1]);

            result = new StringBuilder();

            solution(a, b);
        }
    }

    /**
     * 递归
     * @param a
     * @param b
     */
    private static void solution(Integer a, Integer b){
        egypt(a, b);

        System.out.println(result);
    }

    /**
     * 数学法: 真分数 -> 埃及分数
     *
     * 算法:
     * 设某个真分数的分子为a, 分母为b;
     * 把c=(b/a+1)作为分解式中第一个埃及分数的分母;
     * 将a-b%a 或 a*c-b作为新的a;
     * 将b*c作为新的b;
     *
     * 如果a=1, 则最后一个埃及分数为1/b, 算法结束;
     * 如果a>1 && b%a=0, 则最后一个埃及分数为1/(b/a), 算法结束;
     * 否则重复上面的步骤.
     * 
     * 优化: 当b%(a-1)=0时, a/b=1/(b/(a−1))+1/b, 则最后两个埃及分数为1/(b/(a-1))和1/b, 算法结束;
     * 
     * @param a   分子
     * @param b   分母
     */
    private static void egypt(Integer a, Integer b){
        // a=1 则最后一个埃及分数为1/b
        if(a == 1){
            result.append("1/"+b);
            return;
        }

        // a>1 && b%a=0 则最后一个埃及分数为1/(b/a)
        if(b%a == 0){
            result.append("1/"+b/a);
            return;
        }

        // b%(a-1)=0 则最后两个埃及分数为1/(b/(a-1))和1/b
        if(b%(a-1) == 0){
            result.append("1/"+b/(a-1)+"+1/"+b);
            return;
        }

        // 埃及分数的分母
        int c = b/a+1;
        result.append("1/"+c+"+");
        egypt(a-b%a, b*c);
//        egypt(a*c-b, b*c);
    }
}
